package com.test.springcloudalibaba;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.stream.annotation.EnableBinding;

/**
 * @Desc
 * 自定义错误处理逻辑
 * 由于error逻辑是通过编码方式来实现的，所以这段逻辑相对来说比较死。通常，只有业务上有明确的错误处理逻辑的时候，
 * 这种方法才可以比较好的被应用到。不然能做的可能也只是将消息记录下来，然后具体的分析原因后再去做补救措施。
 * 所以这种方法也不是万能的，主要适用于有明确错误处理方案的方式来使用（这种场景并不多），另外。。。
 *
 * 注意：有坑！ 这个方案在目前版本（2.0.x）其实还有一个坑，这种方式并不能很好的处理异常消息，
 * 会有部分消息得不到正确的处理，由于应用场景也不多，所以目前不推荐使用这种方法来做（完全可以用原始的异常捕获机制来处理，
 * 只是没有这种方式那么优雅）。目前看官方issue是在Spring Cloud Stream的2.1.0版本中会修复，
 * 后续发布之后可以使用该功能，具体点击查看：Issue #1357。
 * ----------------
 * @CLASS_NAME: CustomeApplication
 * ----------------
 * @Author jovi
 * ----------------
 * @Date 2020-04-02 15:16
 */
@EnableBinding(TestTopic.class)
@SpringBootApplication
public class CustomeApplication {

    public static void main(String[] args) {
        SpringApplication.run(CustomeApplication.class, args);
    }
}
